package com.ruicar.afs.cloud.manage.outer.api.insurance.feign;

import com.ruicar.afs.cloud.common.core.util.IResponse;
import com.ruicar.afs.cloud.manage.outer.api.insurance.dto.CustInfoChangeDto;
import com.ruicar.afs.cloud.manage.outer.api.insurance.dto.ManageCustInfoChangeClone;
import com.ruicar.afs.cloud.manage.outer.api.insurance.dto.ManageCustInfoChangeDto;
import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestHeader;
import java.util.Map;

/**
 * @Author chuke
 * @create 2020/7/30 20:10
 */
@FeignClient(name = "custInfoChange", url = "${com.greatwall.services.manage.url}")
public interface CustInfoChangeFegin {
    /**
     * 获取已做身份信息变更案件 多条件
     *
     * @param dto     操作参数封装
     * @param headers 请求头
     * @return
     * @author chuke
     */
    @ApiOperation("多条件查询身份信息申请或暂存过的案件列表")
    @PostMapping(value = "custInfoChange/getManageCustInfoChangeList")
    public IResponse getManageCustInfoChangeContractNo(@RequestBody ManageCustInfoChangeDto dto, @RequestHeader Map<String, String> headers);

    /**
     * 保存身份变更信息
     *
     * @param dto     操作参数封装
     * @param headers 请求头
     * @return
     * @author chuke
     */
    @ApiOperation("保存身份变更信息")
    @PostMapping(value = "custInfoChange/changeContractCustInfo")
    public IResponse contractCustInfoChange(@RequestBody CustInfoChangeDto dto, @RequestHeader Map<String, String> headers);

    /**
     * 查询变更详情
     *
     * @param dto     操作参数封装
     * @param headers 请求头
     * @return
     * @author chuke
     */
    @ApiOperation("保存身份变更信息")
    @PostMapping(value = "custInfoChange/findCustInfoDetial")
    public IResponse findCustInfoDetial(@RequestBody CustInfoChangeDto dto, @RequestHeader Map<String, String> headers);

    /**
     * 查询变更详情
     *
     * @param clone   操作参数封装
     * @param headers 请求头
     * @return
     * @author chuke
     */
    @ApiOperation("保存身份变更信息")
    @PostMapping(value = "custInfoChange/delCustInfo")
    public IResponse delCustInfo(@RequestBody ManageCustInfoChangeClone clone, @RequestHeader Map<String, String> headers);

    /**
     * 查询变更详情
     *
     * @param dto     操作参数封装
     * @param headers 请求头
     * @return
     * @author chuke
     */
    @ApiOperation("保存身份变更信息")
    @PostMapping(value = "custInfoChange/submitCustInfoManage")
    public IResponse submitCustInfoManage(@RequestBody CustInfoChangeDto dto, @RequestHeader Map<String, String> headers);


    /**
     * 查询变更详情
     *
     * @param dto     操作参数封装
     * @param headers 请求头
     * @return
     * @author chuke
     */
    @ApiOperation("流程审批操作")
    @PostMapping(value = "custInfoChange/saveProposalApplicationInfo")
    public IResponse saveProposalApplicationInfo(@RequestBody CustInfoChangeDto dto, @RequestHeader Map<String, String> headers);


}
